import router from './router' // 路由
import store from './store' // vuex
// import { Message } from 'element-ui' // 弹框
import NProgress from 'nprogress' // 虚拟进度条
import 'nprogress/nprogress.css' // 进度条格式css

NProgress.configure({ showSpinner: false }) // 开启虚拟进度条

const whiteList = ['/login', '/404'] // 声明一个数组,里面是登录页面和404页面
// 前置守卫
router.beforeEach(async(to, from, next) => {
  NProgress.start() // 开启进度条
  // 判断是否有token
  if (store.getters.token) {
    // 如果有token 判断是否在登录页面 如果是 就跳转到首页
    if (to.path === '/login') {
      next({ path: '/' })
      NProgress.done() // 关闭进度条
    } else {
      // 进入首页后 获取用户信息,发送ajax 需要做一个条件判断,是否获取过资料 没有获取 那就需要获取 通过vuex中的actions来发送ajax
      if (!store.getters.name) {
        store.dispatch('user/getInfoActions')
      }
      next() // 放行
    }
  } else {
    // 如果没有token
    if (whiteList.includes(to.path)) {
      next() // 放行
    } else {
      next('/login') // 中转到登录页
      NProgress.done() // 关闭进度条
    }
  }
}
)

// 后置守卫
router.afterEach(() => {
  NProgress.done() // 关闭进度条
})
